// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

    package com.fowo.api.service;

    import java.util.List;
    import java.util.Date;
    
    import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    import com.fowo.api.common.model.OptionItem;
    
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.multipart.MultipartFile;
    
    import com.fowo.api.entity.InventoryPlacementR;
    import com.fowo.api.model.inventory.placement.r.InventoryPlacementRVo;
    import com.fowo.api.model.inventory.placement.r.InventoryPlacementRItemVo;
    import com.fowo.api.model.inventory.placement.r.InventoryPlacementRSearchParamPo;
    
import com.fowo.api.common.model.ImportRow;
import com.fowo.api.sys.entity.SysFile;
import com.fowo.api.model.inventory.placement.r.InventoryPlacementRImportPo;

/**
    * 库存货位放置表 服务类
    */
public interface InventoryPlacementRService {
/**
    * 创建库存货位放置表
    * @param model 库存货位放置表
    * @return 新数据的主键
    */
   Long create(InventoryPlacementRVo model) throws Exception;

   /**
    * 更新库存货位放置表
    * @param model 库存货位放置表
    * @return 更新是否成功
    */
   boolean update(InventoryPlacementRVo model) throws Exception;

   /**
    * 更新库存货位放置表（带空值）
    * @param model 库存货位放置表
    * @return 更新是否成功
    */
   boolean updateForEdit(InventoryPlacementRVo model) throws Exception;

   /**
    * 查询是否后台下载
    */
   boolean getBackgroundExportFlag(InventoryPlacementRSearchParamPo search);
   
   /**
    * 删除库存货位放置表
    * @param id 库存货位放置表的主键
    * @return 删除是否成功
    */
   boolean delete(Long id) throws Exception;

    /**
     * 批量删除库存货位放置表
     * @param ids 库存货位放置表的主键列表
     * @return 删除是否成功
     */
    boolean batchDelete(List<Long> ids) throws Exception;
    
/**
     * 获取详情
     * @param id 库存货位放置表的主键
     */
    InventoryPlacementRVo getVoById(Long id) throws Exception;

    /**
     * 分页查询库存货位放置表
     * @param search 查询条件
     * @return 库存货位放置表分页查询结果
     */
    Page<InventoryPlacementRItemVo> pageSearch(InventoryPlacementRSearchParamPo search);
/**
    * 导入预览
    * @param sysFile 已上传到系统的文件
    * @param templateId 要使用的模版编号
    * @param allowOverrides 允许覆盖
    */
   List<ImportRow<InventoryPlacementRImportPo>> importPreview(SysFile sysFile, Long templateId, boolean allowOverrides) throws Exception;

   /**
    * 完成导入
   * @param rows 预导入的行信息
   * @param templateId 当前导入模版（可空）
    */
   void importDone(List<ImportRow<InventoryPlacementRImportPo>> rows, Long templateId) throws Exception;
/**
    * 导出
    * @param templateId 使用模版（可以是 null 或 0 表示系统默认导出模版）
    * @param search 查询条件
    */
   void export(Long templateId, InventoryPlacementRSearchParamPo search, HttpServletResponse response) throws Exception;

/**
        * 通过 编号 查询 库存货位放置表 的主键列表
        * @param list 编号
        */
       List<Long> getIdsById(List<Long> list);
/**
       * 通过  库存货位放置表 的主键查询 编号
       * @param id 主键
       */
       Long getIdById(Long id);
/**
      * 通过  库存货位放置表 的主键查询 编号 列表
      * @param ids 主键
      */
     List<Long> getIdByIds(List<Long> ids);
/**
    * 列表查询库存货位放置表
    * @param search 查询条件
    * @return 库存货位放置表列表查询结果
    */
   List<InventoryPlacementRItemVo> search(InventoryPlacementRSearchParamPo search);
/**
   * 库存货位放置表快速查询选项(有缓存)
   * @param search 查询条件
   * @return 库存货位放置表选项结果
   */
  List<OptionItem<InventoryPlacementRItemVo>> searchOptions(InventoryPlacementRSearchParamPo search);
/**
    * 查询库存货位放置表最后更新时间
    * @param search 查询条件
    * @return 库存货位放置表列表查询结果
    */
    Date searchLastUpdateTime(InventoryPlacementRSearchParamPo search);
}
